Field of the Invention
Embodiments of the present invention relate generally to computer science and, more specifically, to techniques for identifying errors introduced during encoding.
Description of the Related Art
Efficiently and accurately encoding source video is essential for real-time delivery of video content. After the encoded video content is received, the source video is decoded and viewed or otherwise operated upon. Some encoding processes employ lossless compression algorithms, such as Huffman coding, to enable exact replication of the source. By contrast, to increase compression rates and/or reduce the size of the encoded video content, other encoding processes leverage lossy data compression techniques that eliminate selected information, typically enabling only approximate reconstruction of the source.
To optimize encoding time, some encoding processes parallelize the encoding work across multiple compute instances. In one approach to parallel encoding, an encoding engine decomposes the source video into individual chunks, distributes per-chunk encoding across multiple compute instances, and then configures a final compute instance to assemble the multiple encoded chunks into an aggregate encode.
While parallelizing the encoding work can significantly decrease overall decoding time compared to conventional techniques, the complexity inherent in this “divide-and-conquer” approach introduces additional opportunities for errors. For example, if the encoding engine does not assemble the encoded chunks correctly, then synchronization errors may be introduced, thereby degrading the quality of the resulting video. Notably, synchronization errors may be experienced by an audience viewer as an unacceptable and annoying lag between the video and audio components of a movie. Unfortunately, because the source video is typically unavailable after the encoding engine splits the source video into chunks, conventional verification techniques that compare the source video to the post-encode video have limited or no applicability in the parallel encoding paradigms described above. Consequently, parallel encoding engines typically do not ensure the quality of encoded videos or do not do so in an efficient, systematic fashion.
As the foregoing illustrates, what is needed in the art are more effective techniques for identifying errors introduced during encoding processes.